package fl.ass.service.transform;

import java.util.ArrayList;
import java.util.List;

import fl.ass.facade.dto.AssTrailCarDInfDTO;
import fl.ass.service.po.AssTrailCarDInf;
import cn.cmm.base.framework.utils.CollectionUtils;

 /**
 * @Description: 拖车实际信息明细表 转换器
 * @Description: 服务层与展现层转换类
 * @Description: 所有的PO只能在持久成和服务层使用
 * @Description: 所有的DTO只能在展现层和服务层使用
 * @Description: 在服务层中向下是DTO转PO,向上是PO转DTO
 */
public class AssTrailCarDInfTransform {


	/**
	 * PO 转  DTO
	 * @param po AssTrailCarDInf
	 * @return AssTrailCarDInfDTO
	 */
	public static AssTrailCarDInfDTO toDTO(AssTrailCarDInf po) {
		AssTrailCarDInfDTO  dto = null;
		if (po != null) { 
			dto = new AssTrailCarDInfDTO();
			dto.setId(po.getId());
			dto.setMasterId(po.getMasterId());//拖车ID
			dto.setDetailId(po.getDetailId());//拖车明细ID
			dto.setFutureAmt(po.getFutureAmt());//未来本金
			dto.setOverRentAmt(po.getOverRentAmt());//逾期租金
			dto.setOverInterestAmt(po.getOverInterestAmt());//逾期利息
			dto.setPerformanceAmt(po.getPerformanceAmt());//履约保证金
			dto.setInsureAmt(po.getInsureAmt());//保险保证金
			dto.setRiskAmt(po.getRiskAmt());//风险保证金
			dto.setOtherAmt(po.getOtherAmt());//其他费用
			dto.setBaseAmt(po.getBaseAmt());//一次保底价
			dto.setActPayDt(po.getActPayDt());//实际支付日期
			dto.setActPayAmt(po.getActPayAmt());//实际支付金额
			dto.setActBackPlace(po.getActBackPlace());//实际拖回地点
			dto.setActParkingPlace(po.getActParkingPlace());//实际存放地点
			dto.setActBackDt(po.getActBackDt());//实际拖回日期
			dto.setBackManager(po.getBackManager());//清收负责人
			dto.setBackPersonQty(po.getBackPersonQty());//清收人数
			dto.setIsNeedHelp(po.getIsNeedHelp());//是否借助风控队 1-是 0-否
			dto.setBackRoute(po.getBackRoute());//车辆清收路线
			dto.setEmergencyPlan(po.getEmergencyPlan());//应急预案
			dto.setIsDel(po.getIsDel());//是否删除 1-删除 0-正常
			dto.setMarketAmt(po.getMarketAmt());//市场评估价
			dto.setMarketDt(po.getMarketDt());//市场评估时间
            dto.setBadDebts(po.getBadDebts());// 坏账拨备

			dto.setCrtTm(po.getCrtTm());//创建时间
			dto.setCrtUsrId(po.getCrtUsrId());//创建人
			dto.setMdfTm(po.getMdfTm());//修改时间
			dto.setMdfUsrId(po.getMdfUsrId());//修改人
		}
		return dto;
	}

	/**
	 * DTO 转  PO
	 * @param dto AssTrailCarDInfDTO
	 * @return AssTrailCarDInf
	 */
	public static AssTrailCarDInf toPO(AssTrailCarDInfDTO dto) {
		AssTrailCarDInf po = null;
		if (dto != null) {
			po = new AssTrailCarDInf();
			po.setId(dto.getId());
			po.setMasterId(dto.getMasterId());//拖车ID
			po.setDetailId(dto.getDetailId());//拖车明细ID
			po.setFutureAmt(dto.getFutureAmt());//未来本金
			po.setOverRentAmt(dto.getOverRentAmt());//逾期租金
			po.setOverInterestAmt(dto.getOverInterestAmt());//逾期利息
			po.setPerformanceAmt(dto.getPerformanceAmt());//履约保证金
			po.setInsureAmt(dto.getInsureAmt());//保险保证金
			po.setRiskAmt(dto.getRiskAmt());//风险保证金
			po.setOtherAmt(dto.getOtherAmt());//其他费用
			po.setBaseAmt(dto.getBaseAmt());//一次保底价
			po.setActPayDt(dto.getActPayDt());//实际支付日期
			po.setActPayAmt(dto.getActPayAmt());//实际支付金额
			po.setActBackPlace(dto.getActBackPlace());//实际拖回地点
			po.setActParkingPlace(dto.getActParkingPlace());//实际存放地点
			po.setActBackDt(dto.getActBackDt());//实际拖回日期
			po.setBackManager(dto.getBackManager());//清收负责人
			po.setBackPersonQty(dto.getBackPersonQty());//清收人数
			po.setIsNeedHelp(dto.getIsNeedHelp());//是否借助风控队 1-是 0-否
			po.setBackRoute(dto.getBackRoute());//车辆清收路线
			po.setEmergencyPlan(dto.getEmergencyPlan());//应急预案
			po.setIsDel(dto.getIsDel());//是否删除 1-删除 0-正常
			po.setMarketAmt(dto.getMarketAmt());//市场评估价
			po.setMarketDt(dto.getMarketDt());//市场评估时间
            po.setBadDebts(dto.getBadDebts());// 坏账拨备

			po.setCrtTm(dto.getCrtTm());//创建时间
			po.setCrtUsrId(dto.getCrtUsrId());//创建人
			po.setMdfTm(dto.getMdfTm());//修改时间
			po.setMdfUsrId(dto.getMdfUsrId());//修改人
		}
		return po;
	}
	
	/**
	 * PO集合 转 DTO集合
	 * @param list List<AssTrailCarDInf>
	 * @return List<AssTrailCarDInfDTO>
	 */
	public static List<AssTrailCarDInfDTO> toDTOList(List<AssTrailCarDInf> list) {
		List<AssTrailCarDInfDTO>  voList = new ArrayList<AssTrailCarDInfDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (AssTrailCarDInf po : list) {
				voList.add(toDTO(po));
			}
		}
		return voList;
	}
}
